# -*- coding: utf-8 -*-
# Python中默认的编码格式是 ASCII 格式，在没修改编码格式时无法正确打印汉字，所以在读取中文时会报错。
print("小明")

# 如果要让内部属性不被外部访问，可以把属性的名称前加上两个下划线，在Python中，实例的变量名如果以开头，就变成了一个私有变量（private），只有内部可以访问，外部不能访问，
# 所以，我们把Student类改一改：

class Student(object):

    def __init__(self, name, score, age:int = None, sex:bool = True ):
        self.__name = name
        self.__score = score
        self._te = 1
        self.age = age

    def print_score(self):
        print ("%s: %s" %(self.__name,self.__score))

    def get_name(self):
        return self.__name

    def get_score(self):
        return self.__score

    def get_grade(self):
        if self.__score >= 90:
            return 'A'
        elif self.__score >= 60:
            return 'B'
        else:
            return 'C'

student = Student("Hugh", 99)
print(student.get_grade())

student = Student("Hugh", 99, "123")                                 # 定义属性后跟着类型，说明限制了类型，但如果传入其他的，也不错报错
print(student.age)



# self代表类的实例，而非类

class Test:
    def ppr(self):
        print(self)
        print(self.__class__)

t = Test()
t.ppr()

# <__main__.Test object at 0x000000000284E080>                  # self是一个object
# <class '__main__.Test'>                                       # self有一个属性，__class__是一个class


